/*
* Copyright (C) 2012-2013, <Aeihu.z, aeihu.z@gmail.com>.
*
* Game Scenario Maker is a free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* Version 2(GPLv2) as published by the Free Software Foundation.
*/

////=============================================================================
//#include "CMap.h"
//
////=============================================================================
//CMap::CMap() {
//    Surf_Tilesets = NULL;
//}
//
////=============================================================================
//void CMap::OnInit()
//{
//    Anim_Control.MaxFrames = CCommon::common.MAP_ANIMATIOM_MAXFRAMES;
//    Anim_Control.SetFrameRate(CCommon::common.MAP_ANIMATIOM_FRAMERATE);
//}
//
//bool CMap::OnLoad(const char* File) {
//    TileList.clear();
//
//    FILE* FileHandle = fopen(File, "r");
//
//    if(FileHandle == NULL) {
//        return false;
//    }
//
//    for(int Y = 0;Y < CCommon::common.MAP_HEIGHT;Y++) {
//        for(int X = 0;X < CCommon::common.MAP_WIDTH;X++) {
//            CTile tempTile;
//
//            fscanf(FileHandle, "%d:%d:%d:%d ", 
//                &tempTile.TileBottomID, 
//                &tempTile.TileOverID, 
//                &tempTile.Animation, 
//                &tempTile.TypeID);
//
//            TileList.push_back(tempTile);
//        }
//        fscanf(FileHandle, "\n");
//    }
//
//    fclose(FileHandle);
//
//    return true;
//}
//
////-----------------------------------------------------------------------------
//void CMap::OnRender(SDL_Surface* Surf_Display, int MapX, int MapY) {
//    if(Surf_Tilesets == NULL) return;
//
//    int TilesetWidth  = Surf_Tilesets->w / CCommon::common.TILE_SIZE;
////    int TilesetHeight = Surf_Tilesets->h / TILE_SIZE;
//
//    int ID = 0, CurrentFrame = Anim_Control.GetCurrentFrame();
//
//    for(int Y = 0;Y < CCommon::common.MAP_HEIGHT;Y++) {
//        for(int X = 0;X < CCommon::common.MAP_WIDTH;X++) {
//            if(TileList[ID].TypeID == TILE_TYPE_NONE) {
//                ID++;
//                continue;
//            }
//
//            int bottom = 0, over = 0;
//            switch (TileList[ID].Animation)
//            {
//                case ANIMATION_BOTTOM_DYNAMIC:
//                    bottom = CurrentFrame;
//                break;
//                case ANIMATION_OVER_DYNAMIC:
//                    over = CurrentFrame;
//                break;
//                case ANIMATION_BOTH_DYNAMIC:
//                    bottom = CurrentFrame;
//                    over = CurrentFrame;
//                break;
//            }
//
//            int tX = MapX + (X * CCommon::common.TILE_SIZE);
//            int tY = MapY + (Y * CCommon::common.TILE_SIZE);
//
//            int TilesetX = ((TileList[ID].TileBottomID + bottom) % TilesetWidth) * CCommon::common.TILE_SIZE;
//            int TilesetY = ((TileList[ID].TileBottomID + bottom) / TilesetWidth) * CCommon::common.TILE_SIZE;
//
//            CSurface::OnDraw(Surf_Display, Surf_Tilesets, tX, tY, TilesetX, TilesetY, CCommon::common.TILE_SIZE, CCommon::common.TILE_SIZE);
//            
//            if (TileList[ID].TileOverID != 0)
//            {
//                int TilesetX = ((TileList[ID].TileOverID + over) % TilesetWidth) * CCommon::common.TILE_SIZE;
//                int TilesetY = ((TileList[ID].TileOverID + over) / TilesetWidth) * CCommon::common.TILE_SIZE;
//
//                CSurface::OnDraw(Surf_Display, Surf_Tilesets, tX, tY, TilesetX, TilesetY, CCommon::common.TILE_SIZE, CCommon::common.TILE_SIZE);
//            }
//
//            ID++;
//        }
//    }
//}
//
//void CMap::OnLoop()
//{
//    Anim_Control.OnAnimate();
//}
//
////=============================================================================
//CTile* CMap::GetTile(int X, int Y) {
//    int ID = 0;
//
//    ID = X / CCommon::common.TILE_SIZE;
//    ID = ID + (CCommon::common.MAP_WIDTH * (Y / CCommon::common.TILE_SIZE));
//
//    if(ID < 0 || ID >= TileList.size()) {
//        return NULL;
//    }
//
//    return &TileList[ID];
//}
//
////=============================================================================
